﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using BusinnesLayer.LogicBusiness;
using EntitiesLayer.Entities;

namespace ClinicaSanPablo
{
    public partial class BusUsuario : System.Web.UI.Page
    {
        private System.Web.Script.Serialization.JavaScriptSerializer jsonSerializer = new System.Web.Script.Serialization.JavaScriptSerializer();
        private Mantenimientosbl pBl = new Mantenimientosbl();

        protected void Page_Load(object sender, EventArgs e)
        {
            int page = Convert.ToInt32(Request.QueryString["page"]);
            int limit = Convert.ToInt32(Request.QueryString["rows"]);
            string sidx = Request.QueryString["sidx"].ToString();
            string sord = Request.QueryString["sord"].ToString();

            string nombres = Request.QueryString["nombres"] ?? "";
            string apellidos = Request.QueryString["apellidos"] ?? "";
            string area = Request.QueryString["area"] ?? "";

            string datos = GetUsuario(sidx, sord, page, limit, nombres, apellidos, area);
            Response.ContentType = "application/json";
            Response.Write(datos);
            Response.End();
        }

        public string GetUsuario(string sidx, string sord, int page, int rows, string nombres, string apellidos, string area)
        {
            List<Mantenimientos> lista = pBl.ConsultarUsuario(nombres, apellidos, area);

            List<object> lstFilasAfil = new List<object>();

            if (lista.Count > 0)
            {
                foreach (var u in lista)
                {
                    var filaAfil = new
                    {
                        cell = new string[]
                        {
                            u.NumDocUsuario,
                            u.ApeUsuario,
                            u.NomUsuario,
                            u.Email,
                            u.UserUsuario,
                            u.CodTipoDocumento,
                            u.IdPerfil.ToString(),
                            u.CodArea,
                            u.PassUsuario                                                  
                        }
                    };
                    lstFilasAfil.Add(filaAfil);
                }

                int totalPag = (int)Math.Ceiling((decimal)rows / (decimal)lista.Count);
                var data = new
                {
                    total = totalPag,
                    // Total de páginas
                    page = page,
                    // Página actual
                    records = lista.Count,
                    // Total de registros (obtenido del modelo)
                    rows = lstFilasAfil
                };
                return jsonSerializer.Serialize(data);
            }
            else
            {
                var data = new
                {
                    total = 0,
                    // Total de páginas
                    page = 1,
                    // Página actual
                    records = 0,
                    // Total de registros (obtenido del modelo)
                    rows = ""
                };
                return jsonSerializer.Serialize(data);
            }
        }
    }
}